<?php 

if (!class_exists('wpressOrdering')) {
 class wpressOrdering {
 
	## Хранение внутренних данных
	public $orderdata = array();
	
	## Конструктор объекта
	## Инициализация основных переменных
	function wpressOrdering()
	{
		global $wpdb;
		
		## Объявляем константу инициализации нашего плагина
		DEFINE('wpressOrdering', true);
		
		## обязательно должна быть глобально объявлена перменная $wpdb
		$this->tbl_adv_orders   = $wpdb->prefix . 'orderstorage';
		// Если мы в адм. интерфейсе
		if ( is_admin() ) {
			// Добавляем стили и скрипты
			add_action('wp_print_scripts', array(&$this, 'admin_load_scripts'));
			add_action('wp_print_styles', array(&$this, 'admin_load_styles'));
			// Добавляем меню для плагина
			add_action( 'admin_menu', array(&$this, 'admin_generate_menu') );
		
		} 
	}
	
	/**
	 * Загрузка необходимых скриптов для страницы управления 
	 * в панели администрирования
	 */
	function admin_load_scripts()
	{
		// Региестрируем скрипты
		wp_register_script('wpress_ord_js', wpress_order_js . '/orderscripts.js' );
		wp_enqueue_script('wpress_ord_js');
	}
	/**
	 * Загрузка необходимых стилей для страницы управления 
	 * в панели администрирования
	 */
	function admin_load_styles()
	{	
		// Регистрируем стили 
		wp_register_style('yamme_orders_css', wpress_order . '/css/orderstyle.css' );
		// Добавляем стили
                 wp_enqueue_style('yamme_orders_css');
	}
	
	/**
 	 * Генерируем меню
	 */
	function admin_generate_menu()
	{
		// Добавляем основной раздел меню
		add_menu_page('Управління замовленнями', 'Замовлення', 'manage_options', 'edit-orders', array(&$this, 'admin_edit_orders'), '', 7);
	}
	
	/**
	 * Выводим список заказов для редактирования
	 */
	public function admin_edit_orders()
	{
		global $wpdb;
		
		$action = isset($_GET['action']) ? $_GET['action'] : null ;
		
		switch ($action) {
		
			case 'edit':
				// Получаем данные из БД
				$this->orderdata['order'] = $wpdb->get_row("SELECT * FROM `" . $this->tbl_adv_orders . "` WHERE `id`= ". (int)$_GET['id'], ARRAY_A);
				
				// Подключаем страницу для отображения результатов 
				include_once('edit_order.php');
			break;
			
			case 'submit':
				$inputData = array(
					'product_name'   => $_POST['product_name'],
					'product_cost'   => $_POST['product_cost'],
					'product_count'   => $_POST['product_count'],
					'product_total'   => $_POST['product_total'],
					'product_coment'   => $_POST['product_coment'],
                                        'status'   => $_POST['status'],
				);
                                 
				$editId=intval($_POST['id']);
				if ($editId == 0) return false;
			
				// Обновляем существующую запись
                                //$wpdb->show_errors(); // включит показ ошибок
				$wpdb->update( $this->tbl_adv_orders, $inputData, array( 'ID' => $editId ));
                               // print_r($inputData);
				
				// Показываем список отзывов
				$this->admin_show_orders();
                               
			break;
			
			case 'delete':
			
				// Удаляем существующую запись
				$wpdb->query("DELETE FROM `".$this->tbl_adv_orders."` WHERE `id` = '". (int)$_GET['id'] ."'");
				
				// Показываем список отзывов
				$this->admin_show_orders();
			break;
			
			default:
				$this->admin_show_orders();
		}
		
	}
	
	/**
	 * Функция для отображения списка отзывов в адм. панели
	 */
	private function admin_show_orders()
	{
		global $wpdb;
		
		// Получаем данные из БД
		$this->orderdata['orders'] 	 = $wpdb->get_results("SELECT * FROM ".$this->tbl_adv_orders . " ORDER BY id DESC", ARRAY_A);
		
		// Подключаем страницу для отображения результатов 
		include_once('view_orders.php');
	}
	
 }
}

global $kv26_ordering;
$kv26_ordering = new wpressOrdering();